/*
 * tblmake.c
 * 機体別パラメータ作成
 */
#include "spec.h"
#include "vardecl.h"
/*
 * 設定するもの
 *		float AccTable      加速度テーブル
 *		float EngBrakeTable 現在の速度に対しての自然減速テーブル
 *		float BrakeTable    現在の速度に対してのブレーキによる減速テーブル
 *		float DriftTable    ドリフトテーブル
 *		int   Handling      ハンドルの切れ具合(°×１０）
 *		float Bounce        相手とぶつかったときの反射係数
 */

/*
 * ボスユニット
 * 加速：直線
 * 自然減速：直線（多め）
 * ブレーキ：直線（良く効く）
 * ハンドル：3°単位
 */

void
BossUnit(machtype *unit)
{
  int i;
	
  for (i = TABLEMIN; i < TABLESIZ; i++) {
    unit->AccTable[i]      = MIN_RAD;
    unit->EngBrakeTable[i] = MIN_RAD / 2;
    unit->BrakeTable[i]    = MIN_RAD * 2;
  }
  unit->Handling = 30;
  unit->Bounce = 4.0;
}

/*
 * Heavy Unit  ver.0.03
 * 加速：直線（速め）
 * 自然減速：直線（多め）
 * ブレーキ：直線（効きにくい）
 * ハンドル：2.5°単位
 * はじきとばされにくい
 */
void
HeavyUnit(machtype *unit)
{
  int i;
	
  for(i = TABLEMIN; i < TABLESIZ; i++){
    unit->AccTable[i]      = MIN_RAD * 1.5;
    unit->EngBrakeTable[i] = MIN_RAD / 2;
    unit->BrakeTable[i]    = MIN_RAD * 2.3;
  }
  unit->Handling = 25;
  unit->Bounce = 1.8;
}

/*
 * Light Unit  ver.0.02
 * 加速：直線 ( 速い )
 * 自然減速：直線（普通）
 * ブレーキ：直線（良く効く）
 * ハンドル：4°単位
 */
void
LightUnit(machtype *unit)
{
  int i;
	
  for(i = TABLEMIN; i < TABLESIZ; i++){
    unit->AccTable[i]      = MIN_RAD * 1.7;
    unit->EngBrakeTable[i] = MIN_RAD / 2.3;
    unit->BrakeTable[i]    = MIN_RAD * 3.0;
  }
  unit->Handling = 40;
  unit->Bounce = 2.1;
}

/*
 * Normal Unit  ver.0.01
 * 加速：直線 ( 普通 )
 * 自然減速：直線（普通）
 * ブレーキ：直線（普通）
 * ハンドル：3°単位
 */
void
NormalUnit(machtype *unit)
{
  int i;
	
  for(i = TABLEMIN; i < TABLESIZ; i++){
    unit->AccTable[i]      = MIN_RAD * 1.3;
    unit->EngBrakeTable[i] = MIN_RAD / 2.5;
    unit->BrakeTable[i]    = MIN_RAD * 2.5;
  }
  unit->Handling = 20;
  unit->Bounce = 2.0;
}
